package demo;

public class Solution {
    public ListNode mergeTwoLists(ListNode list1, ListNode list2) {

        ListNode resulthead=new ListNode();//结果链表,虚构一个头结点
        ListNode resultLast=resulthead;
        ListNode cur1=list1;
        ListNode cur2=list2;

        while(cur1!=null&&cur2!=null){
            if(cur1.val<=cur2.val){
                //将链表1中小的元素尾插到结果链表中
                resultLast.next=cur1;
                //更新尾结点
                resultLast=cur1;
                cur1=cur1.next;
            }else{
                //将链表2中小的元素尾插到结果链表中
                resultLast.next=cur2;
                //尾插后更新尾结点
                resultLast=cur2;
                cur2=cur2.next;
            }
        }
        //当有一条链表为空时跳出循环，找到那条空的链表
        if(cur1!=null){
            resultLast.next=cur1;
        }else
        {
            resultLast.next=cur2;
        }
        return resulthead.next;

    }
}
